package com.haidechizi.fastadmin.common.page;

import com.baomidou.mybatisplus.plugins.Page;
import com.haidechizi.fastadmin.common.utils.StringUtils;
import com.haidechizi.fastadmin.common.xss.SQLFilter;
import lombok.Data;

@Data
public class PageDto {

    private Integer page;
    private Integer limit;
    private String sidx;
    private String order;
    private String sqlFilter;   // 通过动态代理注入参数

    public <T> Page<T> cover2Page() {
        //mybatis-plus分页
        Page<T> page = new Page<>(this.page, this.limit);
        //防止SQL注入（因为sidx、order是通过拼接SQL实现排序的，会有SQL注入风险）
        String sidx = SQLFilter.sqlInject(this.sidx);
        String order = SQLFilter.sqlInject(this.order);
        //排序
        if (StringUtils.isNotBlank(sidx) && StringUtils.isNotBlank(order)) {
            page.setOrderByField(sidx);
            page.setAsc("ASC".equalsIgnoreCase(order));
        }
        return page;
    }


}
